package pers.cj.pdos.service;

import org.apache.ibatis.annotations.Param;
import pers.cj.pdos.entity.GoodsSn;
import com.baomidou.mybatisplus.extension.service.IService;
import pers.cj.pdos.vo.CountVo;
import pers.cj.pdos.vo.GoodsSnVo;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 商品启用sn后:入库时需要与商品1对1入库。出库时也需要一对一出库 服务类
 * </p>
 *
 * @author chenj
 * @since 2019-11-04
 */
public interface IGoodsSnService extends IService<GoodsSn> {

    List<GoodsSnVo> listVoPage(String companyId, Integer page, Integer limit, String search, String storeId, String houseId, Date inDate1,Date inDate2, Date outDate1,Date outDate2,
                               String sn,Integer status, String no, String name);

    Long count(String companyId, String search, String storeId, String houseId, Date inDate1,Date inDate2, Date outDate1,Date outDate2,
               String sn,Integer status, String no, String name);

    GoodsSnVo getVoById(String id);

    boolean checkRepeat(String goodsId, List<String> list);

    List<GoodsSn> checkSnStatusOutHouseId(String goodsId,String houseId,List<String> sns);

    List<GoodsSn> listOut(Integer page, Integer limit, String goodsId, String houseId, String search);
    Long countOut(String goodsId, String houseId, String search);

    List<GoodsSn> listOutByGoodsTransferId(String goodsTransferId, String goodsId);

    List<GoodsSn> listOutByBorrowInId(String borrowInId, String goodsId);

    List<GoodsSn> listOutByBorrowOutId(String borrowOutId, String goodsId);
}
